package com.senlingspace.system.mapper;

import java.util.List;

import com.senlingspace.system.domain.SlkjShopProject;
import com.senlingspace.system.domain.vo.SlkjShopVo;
import org.apache.ibatis.annotations.Param;

/**
 * 门店项目关联Mapper接口
 *
 * @author SenlingSpace
 * @date 2024-06-28
 */
public interface SlkjShopProjectMapper {
    /**
     * 查询门店项目关联
     *
     * @param id 门店项目关联主键
     * @return 门店项目关联
     */
    public SlkjShopProject selectSlkjShopProjectById(Long id);

    /**
     * 查询门店项目关联列表
     *
     * @param slkjShopProject 门店项目关联
     * @return 门店项目关联集合
     */
    public List<SlkjShopProject> selectSlkjShopProjectList(SlkjShopProject slkjShopProject);

    /**
     * 新增门店项目关联
     *
     * @param slkjShopProject 门店项目关联
     * @return 结果
     */
    public int insertSlkjShopProject(SlkjShopProject slkjShopProject);

    /**
     * 修改门店项目关联
     *
     * @param slkjShopProject 门店项目关联
     * @return 结果
     */
    public int updateSlkjShopProject(SlkjShopProject slkjShopProject);

    /**
     * 删除门店项目关联
     *
     * @param id 门店项目关联主键
     * @return 结果
     */
    public int deleteSlkjShopProjectById(Long id);

    /**
     * 批量删除门店项目关联
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSlkjShopProjectByIds(Long[] ids);

    /**
     * 根据门店ID更新状态
     *
     * @param sp
     * @return
     */
    long updateSlkjShopProjectStatusByShopId(SlkjShopProject sp);

    /**
     * 获取门店当前背景图
     *
     * @param shopIds
     * @return {@link List }<{@link SlkjShopVo }>
     */
    List<SlkjShopVo> selectShopCurrentBackgroundByShopIdList(@Param("shopIds") List<Long> shopIds);

    /**
     * 根据门店ID获取当前正在上映的项目
     *
     * @param shopId
     * @return {@link SlkjShopProject }
     */
    SlkjShopProject selectCurrentShowingProjectByShopId(Long shopId);

}
